
#include "nane/core/crt/Win32/Win32TimeImpl_.h"

namespace nane
{
    ////////////////////////////////////////////////////////////////////////////////////////////////
    Time::Implementation::Implementation()
    {
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    Time::Implementation::~Implementation()
    {
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    bool Time::Implementation::Initialize()
    {
        ::QueryPerformanceFrequency(&timerFreq);
        if( timerFreq.QuadPart == 0L )
        {
            timerFreq.QuadPart = 1L;
        }
        return true;
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    void Time::Implementation::Shutdown()
    {
        
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
    uint32 Time::Implementation::GetMilliseconds()
    {
        LARGE_INTEGER counter;
        ::QueryPerformanceCounter(&counter);
        return static_cast<uint32>(counter.QuadPart / (timerFreq.QuadPart / 1000));
    }
    ////////////////////////////////////////////////////////////////////////////////////////////////
}   // namespace nane
